home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / sysdeps / stub / statbuf.h < prev    next >
C/C++ Source or Header  |  1992-09-29  |  3KB  |  72 lines

  1. /* Copyright (C) 1992 Free Software Foundation, Inc.
  2. This file is part of the GNU C Library.
  3.  
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Library General Public License as
  6. published by the Free Software Foundation; either version 2 of the
  7. License, or (at your option) any later version.
  8.  
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. Library General Public License for more details.
  13.  
  14. You should have received a copy of the GNU Library General Public
  15. License along with the GNU C Library; see the file COPYING.LIB.  If
  16. not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  17. Cambridge, MA 02139, USA.  */
  18.  
  19. /* This structure needs to be defined in accordance with the
  20.    implementation of __stat, __fstat, and __lstat.  */
  21.  
  22. #ifndef    _STATBUF_H
  23.  
  24. #define    _STATBUF_H    1
  25.  
  26. #include <gnu/types.h>
  27.  
  28. /* Structure describing file characteristics.  */
  29. struct stat
  30.   {
  31.     /* These are the members that POSIX.1 requires.  */
  32.  
  33.     __mode_t st_mode;        /* File mode.  */
  34.     __ino_t st_ino;        /* File serial number.  */
  35.     __dev_t st_dev;        /* Device containing the file.  */
  36.     __nlink_t st_nlink;        /* Link count.  */
  37.  
  38.     __uid_t st_uid;        /* User ID of the file's owner.  */
  39.     __gid_t st_gid;        /* Group ID of the file's group.  */
  40.     __off_t st_size;        /* Size of file, in bytes.  */
  41.  
  42.     __time_t st_atime;        /* Time of last access.  */
  43.     __time_t st_mtime;        /* Time of last modification.  */
  44.     __time_t st_ctime;        /* Time of last status change.  */
  45.  
  46.     /* This should be defined if there is a `st_blksize' member.  */
  47. #undef    _STATBUF_ST_BLKSIZE
  48.   };
  49.  
  50. /* Encoding of the file mode.  These are the standard Unix values,
  51.    but POSIX.1 does not specify what values should be used.  */
  52.  
  53. #define    __S_IFMT    0170000    /* These bits determine file type.  */
  54.  
  55. /* File types.  */
  56. #define    __S_IFDIR    0040000    /* Directory.  */
  57. #define    __S_IFCHR    0020000    /* Character device.  */
  58. #define    __S_IFBLK    0060000    /* Block device.  */
  59. #define    __S_IFREG    0100000    /* Regular file.  */
  60. #define    __S_IFIFO    0010000    /* FIFO.  */
  61.  
  62. /* Protection bits.  */
  63.  
  64. #define    __S_ISUID    04000    /* Set user ID on execution.  */
  65. #define    __S_ISGID    02000    /* Set group ID on execution.  */
  66. #define    __S_IREAD    0400    /* Read by owner.  */
  67. #define    __S_IWRITE    0200    /* Write by owner.  */
  68. #define    __S_IEXEC    0100    /* Execute by owner.  */
  69.  
  70.  
  71. #endif /* statbuf.h */
  72.